// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程：https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
const db = uniCloud.database();
const dbshifte = db.collection('car_schedules');

module.exports = {

	// 获取单日值班数据
	async getDuty(date) {
		const {
			data
		} = await dbshifte.where({
			date
		}).get()
		return data?.[0] || {
			date,
			leader: [],
			staff: [],
			lastModified: null
		}
	},
	// 保存单日数据
	async saveDuty(data) {
		const exists = await dbshifte.where({
			date: data.date
		}).get()
		if (exists.data.length > 0) {
			await dbshifte.doc(exists.data[0]._id).update({
				data
			})
		} else {
			await dbshifte.add({
				data
			})
		}
	},
	// 导入全部数据
	async importSchedule(data) {
		const batch = uni.createBatch()
		for (const date in data) {
			const exists = await dbshifte.where({
				date
			}).get()
			if (exists.data.length > 0) {
				batch.update(dbshifte.doc(exists.data[0]._id), {
					data: data[date]
				})
			} else {
				batch.add(dbshifte, {
					...data[date],
					date
				})
			}
		}
		await batch.commit()
	},
	// 获取默认值班数据（可从模板加载）
	async getDefaultDuty(date) {
		return {
			date,
			leader: [],
			staff: [],
			lastModified: null
		}
	},
	// 获取所有带班领导
	async getAllLeaders() {
		const {
			data
		} = await db.dbshifte('leaders').get()
		return data.map(l => ({
			...l,
			selected: false
		}))
	},
	// 获取所有值班人员
	async getAllStaff() {
		const {
			data
		} = await db.dbshifte('staff').get()
		return data.map(s => ({
			...s,
			selected: false
		}))
	}


	_before: function() { // 通用预处理器

	},
	/**
	 * method1方法描述
	 * @param {string} param1 参数1描述
	 * @returns {object} 返回值描述
	 */
	/* 
	method1(param1) {
		// 参数校验，如无参数则不需要
		if (!param1) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		// 业务逻辑
		
		// 返回结果
		return {
			param1 //请根据实际需要返回值
		}
	}
	*/
}